些末なことだが、Rails 2.x では環境指定の方法が migrateタスク と runner と consoleコマンドで違っているのが不便だ。runnerはオプションの指定方法をセオリ通り2つ用意しているが、そのせいで余計に混乱する。特に使う機会が少ないrunnerとconsoleはいつも確認していた。こんな感じ。
rake db:migrate RAILS_ENV=production ruby script/runner -e production 'Foo.do' ruby script/runner --environment=production 'Bar.do' ruby script/console production
Rails 3.xでは真っ先に改善されているかと思ったら、コマンドがrailsコマンドに集約された以外は何も変わっていなかった。これは何か理由があるのかもしれない。
rake db:migrate RAILS_ENV=production rails runner -e production rails runner --environment=production rails console production
私だったらこんな感じにするかな。rakeの環境指定は難しいところだが、rubyっぽく環境名をconfig.ymlを見て自由に指定できるようにしたい。できるのかな。consoleは直交性のために-eオプションを付けても受け付けるようにする。これだけでもうれしいけど、甘いかな。
rake db:migrate:production rails runner -e production rails console [-e] production
ソフトバンククリエイティブ
売り上げランキング: 75223
1 個のping
[…] http://havbegun.blogspot.jp/2012/04/rails.html http://www.suchi.org/wp/2012/03/railsenvopt/ Category: Ruby on Rails […]